package com.util;

import com.gavel.database.SQLExecutor;
import com.mrobuy.jdvc.entity.VCItem;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;


public class ItemPriceExport {

    private static final DateFormat DATE_FORMAT = new SimpleDateFormat("MMdd");

    public static void main(String[] args) throws Exception{

        //






//        File file = new File("price_template.xlsx");
//        FileInputStream fis = new FileInputStream(file);
//
//
//
//
//
//        XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(file));
//        fis.close();
//
//        XSSFSheet sheet = wb.getSheetAt(wb.getActiveSheetIndex());
//
//        XSSFRow row = sheet.getRow(3);
//
//        int i = 2;
//
//
//        List<VCProduct> products = SQLExecutor.executeQueryBeanList("select * from VC_PRODUCT  where  ORIGINALCODE  = '297218' or ORIGINALCODE  = '327755' ", VCProduct.class);
//        for (VCProduct product : products) {
//            List<VCItem> items = SQLExecutor.executeQueryBeanList("select * from VC_ITEM where PRODUCTCODE = ? ", VCItem.class, product.getOriginalCode());
//            if ( items==null || items.size()==0 ) {
//                System.err.println("[" + product.getOriginalCode() + "]" + product.getName() +  ": Item为空");
//                continue;
//            }
//
//            VCCategory category =  SQLExecutor.executeQueryBean("select * from VC_CATEGORY where ID = ? ", VCCategory.class, product.getCid1());
//
//            VCCategory parent =  SQLExecutor.executeQueryBean("select * from VC_CATEGORY where ID = ? ", VCCategory.class, category.getPid());
//
//            VCBrand brand =  SQLExecutor.executeQueryBean("select * from VC_BRAND where BRANDID = ? ", VCBrand.class, product.getBrandid());
//
//            System.out.println(parent.getName() + "- " + category.getName() + " - " + brand.getName());
//
//
//            for (VCItem item : items) {
//                i++;
//                XSSFRow _row = sheet.getRow(i);
//                if ( _row==null ) {
//                    _row = sheet.createRow(i);
//                }
//
//                if ( _row.getCell(0)==null ) {
//                    _row.createCell(0);
//
//                    for (int j = 0; j < 29; j++) {
//                        _row.createCell(j);
//                        _row.getCell(j).setCellStyle(row.getCell(j).getCellStyle());
//                    }
//
//                }
//
//                // 序号	二级类目	三级类目	其他类目	SKU编码	产品名称	制造商型号	UPC编码（69码or认证编码）	品牌	计量单位	"最小
//                //箱规"	京东采购价	线下市场价	京东价（C端）
//
//                _row.getCell(0).setCellValue(i-2);
//
//                _row.getCell(1).setCellValue(parent.getName());
//                _row.getCell(2).setCellValue(category.getName());
//
//                _row.getCell(5).setCellValue(item.getSkuName());
//                _row.getCell(6).setCellValue(item.getModel());
//                // _row.getCell(7).setCellValue(item.getUpc());
//                _row.getCell(8).setCellValue(brand.getName());
//                _row.getCell(9).setCellValue(item.getUnit());
//                _row.getCell(10).setCellValue("1");
//
//
//                _row.getCell(11).setCellValue(item.getPurchasePrice());
//                _row.getCell(12).setCellValue(item.getMarketPrice());
//                _row.getCell(13).setCellValue(item.getMemberPrice());
//
//                _row.getCell(16).setCellFormula(grossMargin(i+1));
//                _row.getCell(17).setCellFormula("0");
//
//                _row.getCell(21).setCellValue(item.getWeight() + " KG");
//                _row.getCell(22).setCellValue(item.getLength());
//                _row.getCell(23).setCellValue(item.getWidth());
//                _row.getCell(24).setCellValue(item.getHeight());
//
//                _row.getCell(26).setCellValue(item.getDeliverydate());
//
//                System.out.println(item.getOriginalCode() + ": " + item.getItemNum() + ": " + CodeEncoder.decoder(item.getItemNum()));
//            }
//        }
//
//
//
//        wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
//
//        FileOutputStream output = new FileOutputStream("京苏易购价格+jsyg+" + DATE_FORMAT.format(Calendar.getInstance().getTime()) + ".xlsx");
//        wb.write(output);
//        output.close();

    }


    /**
     * 毛利率计算公式
     * @param rowNum
     * @return
     */
    public static String grossMargin(int rowNum){
        return String.format("IFERROR((N%d-L%d)/N%d,\"\")", rowNum, rowNum, rowNum);
    }


    public static List<VCItem> loadItems() throws Exception {
        return SQLExecutor.executeQueryBeanList("select * from VC_ITEM ", VCItem.class);
    }

}
